<?php
/*
 * @Description: 账户（服务层）
 * @Author: franktrue 807615827@qq.com
 * @Date: 2021-07-13 10:38:59
 * @LastEditTime: 2021-07-13 17:41:35
 */
namespace App\Rpc\Lib;

/**
 * Class AccountUserInterface
 *
 * @since 2.0
 */
interface AccountUserInterface
{
    /**
     * 注册账户
     * 
     * @param string $type 账户类型 username/email/phone
     * @param string $account 账户名
     * @param string $password 密码
     * @param string $createIpAt 创建者IP地址
     * 
     * @return array
     */
    public function register(string $type, string $account, string $password, string $createIpAt = ''): array;

    /**
     * 登路账户
     * 
     * @param string $type 账户类型 username/email/phone
     * @param string $account 账户名
     * @param string $password 密码
     * @param string $lastLoginIpAt 创建者IP地址
     * 
     * @return array
     */
    public function login(string $type, string $account, string $password, string $lastLoginIpAt = ''): array;

    /**
     * 查看对象
     * 
     * @param int $id 账户ID
     * @param array $columns 要查看的字段
     * 
     * @return array 账户信息
     */
    public function get(int $id, array $columns = ['*']): array;

    /**
     * 更新账户
     * 
     * @param int $id 账户ID
     * @param array $attributes 账户信息
     * 
     * @return bool
     */
    public function update(int $id, array $attributes): bool;

    /**
     * 删除账户
     * 
     * @param int $id 账户ID
     * 
     * @return bool
     */
    public function delete(int $id): bool;
}